<?php
/************************************************************************
 * OVIDENTIA http://www.ovidentia.org                                   *
 ************************************************************************
 * Copyright (c) 2003 by CANTICO ( http://www.cantico.fr )              *
 *                                                                      *
 * This file is part of Ovidentia.                                      *
 *                                                                      *
 * Ovidentia is free software; you can redistribute it and/or modify    *
 * it under the terms of the GNU General Public License as published by *
 * the Free Software Foundation; either version 2, or (at your option)  *
 * any later version.													*
 *																		*
 * This program is distributed in the hope that it will be useful, but  *
 * WITHOUT ANY WARRANTY; without even the implied warranty of			*
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.					*
 * See the  GNU General Public License for more details.				*
 *																		*
 * You should have received a copy of the GNU General Public License	*
 * along with this program; if not, write to the Free Software			*
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,*
 * USA.																	*
************************************************************************/
require_once 'base.php';

/**
 * Ceci est une fonction evenementielle enregistree avec bab_addEventListener
 * elle sera appelee lors de l'affichage d'une zone de texte editeur WYSIWYG
 *
 * @param	bab_eventEditorContentToEditor	&$event
 *
 */
function ckeditor_onContentToEditor(bab_eventEditorContentToEditor $event) {
	
	
	if (!empty($event->content) && 'html' !== $event->format) {
		/**
		 * Pour le moment seul le format html est géré par le noyau mais il faut ignorer les autres format s'ils ne sont pas supportés
		 * car d'autres formats pourrais étres utilisés é l'avenir, gérés par leurs propres modules
		 */
		return;
	}

	require_once $GLOBALS['babAddonPhpPath']."ckeditor/ckeditor.php";
	
	$obj = new ckeditor($GLOBALS['babInstallPath'].'addons/LibCkEditor/ckeditor/');// le chemin d'installation de l'add-on
	
	if( empty($event->content)){
		$content = "";
	}else{
		$content = preg_replace("/src=\"(images[^\"]+)\"/", "src=\"".$GLOBALS['babUrl']."\\1\"", $event->content);
	}
	$obj->returnOutput = true;
	
	$obj->config['height'] = $event->parameters['height'];
	$toolbar = array(
		array(
			'Templates'
		),
		array(
			'Cut','Copy','Paste','PasteText','PasteFromWord'
		),
		array(
			'Undo','Redo','-','Find','Replace','SpellChecker','-','SelectAll','RemoveFormat'
		),
		array(
			'Maximize','Source'
		),
		'/',
		array(
			'Bold','Italic','Underline','Strike','Subscript','Superscript'
		),
		array(
			'JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'
		),
		array(
			'NumberedList','BulletedList','-','Outdent','Indent'
		),
		array(
			'Table','HorizontalRule','SpecialChar'
		),
		array(
			'Link','Unlink','Anchor','Ovidentia'
		),
		'/',
		array(
			'Format','Font','FontSize'
		),
		array(
			'TextColor','BGColor'
		)
	);
	$config['toolbar'] = $toolbar;
	$html = '<input type="hidden" name="'.$event->uid.'_format" value="html" />';
	$obj->textareaAttributes['id'] = $event->uid;
	$html .= $obj->editor($event->fieldname,$content,$config);
	
	$event->setOutputEditor($html);
}


/**
 * Ceci est une fonction evenementielle enregistree avec bab_addEventListener
 * elle sera appelee lorsque le formulaire est soumis et que le programme cherche a enregistrer le texte saisi dans la base
 *
 * @param	bab_eventEditorRequestToContent	&$event
 *
 */
function ckeditor_onRequestToContent(bab_eventEditorRequestToContent $event) {
	
	if ('html' !== bab_pp($event->fieldname.'_format')) {
		return;
	}
	
	$content = bab_pp($event->fieldname);
	bab_editor_record($content);
	$event->setOutputContent($content, 'html');
}

/**
 * Ceci est une fonction evenementielle enregistree avec bab_addEventListener
 * elle sera appelee lorsque du texte saisi par l'editeur doit etre affiche en html
 *
 * @param	bab_eventEditorContentToHtml	&$event
 *
 */
function ckeditor_onContentToHtml(bab_eventEditorContentToHtml $event) {

	
	if ('html' !== $event->format) {
		return;
	}

	$event->setOutputHtml(bab_toHtml($event->content, BAB_HTML_REPLACE));
}

?>
